﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;
using DAOLayer;

namespace ServiceLayer
{
    using Forms;

    /// <summary>
    /// Класс служебного уровня реализующий доступ к конфигурации БД.
    /// </summary>
    public class CConfig: CDAOConfig
    {
        /// <summary>
        /// Версия БД
        /// </summary>
        public Version version
        {
            set
            {
                this["DATABASE_VERSION"] = value.Major.ToString();
                this["DATABASE_SUBVERSION"] = value.Minor.ToString();
            }
            get
            {
                int Ver = Convert.ToInt32(this["DATABASE_VERSION"]);
                int SubVer = Convert.ToInt32(this["DATABASE_SUBVERSION"]);
                return new Version(Ver, SubVer);
            }
        }
        /// <summary>
        /// Телефонный код города, используемый по умолчанию
        /// </summary>
        public string TelefonKodGoroda
        {
            get
            {
                return this["TELEFON_KOD_GORODA"];
            }
            set
            {
                this["TELEFON_KOD_GORODA"] = value;
            }
        }
        /// <summary>
        /// Телефонные код страны используемый по умолчанию
        /// </summary>
        public string TelefonKodStrany
        {
            get
            {
                return this["TELEFON_KOD_STRANY"];
            }
            set
            {
                this["TELEFON_KOD_STRANY"] = value;
            }
        }
        /// <summary>
        /// Конструктор, создаёт объект конфигурации БД.
        /// </summary>
        /// <param name="DataBase">База данных конфигурацию которой необходимо получить</param>
        public CConfig(CDataBase DataBase) :
            base(DataBase)
        {
        }
        /// <summary>
        /// Отобразить диалоговое окно для изменения параметов БД.
        /// </summary>
        /// <returns></returns>
        public DialogResult ShowDialog()
        {
            FormConfigEdit fDialog = new FormConfigEdit();
            fDialog.version = version.Major;
            fDialog.Subversion = version.Minor;
            fDialog.Telefon_KodGoroda = TelefonKodGoroda;
            fDialog.Telefon_KodStrany = TelefonKodStrany;
            DialogResult dr = fDialog.ShowDialog();
            if (dr == DialogResult.OK)
            {
                //version = new Version(fDialog.version, fDialog.Subversion);
                TelefonKodStrany = fDialog.Telefon_KodStrany;
                TelefonKodGoroda = fDialog.Telefon_KodGoroda;
            }
            return dr;
        }
    }
}
